package gui;

import javax.faces.bean.ManagedBean;

import basicas.organizacionais.Funcao;
import java.util.List;
import javax.faces.context.FacesContext;
import javax.servlet.http.HttpServletRequest;


import negocio.Fachada;

@ManagedBean // @ManagedBean(name=�msg�)
public class FuncaoBean {

    private Funcao funcao;
    private String retornoHtml = "";
    private List<Funcao> listFuncao;
    private int codigoBusca;

    public FuncaoBean() {
        
        HttpServletRequest request = (HttpServletRequest) FacesContext.getCurrentInstance().getExternalContext().getRequest();        
        String codigoFuncao = request.getParameter("cfuncao");        
        
        if(codigoFuncao != null){                        
            int codigo = Integer.parseInt(codigoFuncao);            
            funcao = Fachada.getInstancia().getFuncaoByCodigo(codigo);
        }else{
            funcao = new Funcao();
        }   
                        
    }

    public void inserir() {
        Fachada fachada = Fachada.getInstancia();
        try {
            fachada.inserirFuncao(funcao);            
            retornoHtml = FuncoesStaticBean.mostraSucesso();
            funcao = null;
        } catch (Exception e) {
            retornoHtml = FuncoesStaticBean.mostraErro();
        }
    }

    public void alterar() {
        try {
            Fachada.getInstancia().alterarFuncao(funcao);
            retornoHtml = FuncoesStaticBean.mostraSucesso();
        } catch (Exception e) {
            retornoHtml = FuncoesStaticBean.mostraErro();
        }
    }
    
    public void remover(Funcao funcao){	        
        try {            
            Fachada.getInstancia().removerFuncao(funcao);
            retornoHtml = FuncoesStaticBean.mostraSucesso();
        } catch (Exception e) {
            retornoHtml = FuncoesStaticBean.mostraErro();
        }                		
    }

    public String alterarFuncao(int cfuncao){
        return "alterarfuncao.xhml?faces-redirect=true&cfuncao=" + cfuncao;
    }

    public void buscar(){
        funcao = Fachada.getInstancia().getFuncaoByCodigo(codigoBusca);
    }
    
    public List<Funcao> getListFuncao() {
        Fachada fachada = Fachada.getInstancia();
        listFuncao = fachada.listarFuncoes();
        return listFuncao;
    }

    public String getRetornoHtml() {
        return retornoHtml;
    }

    public void setRetornoHtml(String retornoHtml) {
        this.retornoHtml = retornoHtml;
    }

    public Funcao getFuncao() {
        return funcao;
    }

    public void setFuncao(Funcao funcao) {
        this.funcao = funcao;
    }

    public int getCodigoBusca() {
        return codigoBusca;
    }

    public void setCodigoBusca(int codigoBusca) {
        this.codigoBusca = codigoBusca;
    }

    
}
